package com.xd.core.business.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @ClassName SurrenderDetailVo
 * @Description 提前退保详情
 * @Author Zch
 * @Date 2025/8/28 星期四 16:33
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class SurrenderDetailVo {

    @ApiModelProperty(value = "账单")
    private List<HisBillInfoVo> billInfoVo;

    @ApiModelProperty(value = "退保类型 0:提前退保 1:逾期退保")
    private String surrenderType;

    @ApiModelProperty(value = "退保类型 0:提前退保 1:逾期退保")
    private String surrenderTypeRemark;

    @ApiModelProperty(value = "申请退保日")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    private Date applySurrenderDate;

    @ApiModelProperty(value = "本次逾期天数")
    private Integer overdueDays;

    @ApiModelProperty(value = "退保状态 0:退保中 1:已退保")
    private String status;

    @ApiModelProperty(value = "退保状态 0:退保中 1:已退保")
    private String statusRemark;

    @ApiModelProperty(value = "退保情况 0:部分退保 1:全部退保")
    private String surrenderSituation;

    @ApiModelProperty(value = "退保情况 0:部分退保 1:全部退保")
    private String surrenderSituationRemark;

    @ApiModelProperty(value = "订单剩余本金")
    private BigDecimal orderAmount;

    @ApiModelProperty(value = "退保保单剩余应还本金(元)")
    private BigDecimal surrenderRemainPrincipal;

    @ApiModelProperty(value = "退保保单应还本月利息(元)")
    private BigDecimal surrenderCurrentInterest;

    @ApiModelProperty(value = "本次逾期利息")
    private BigDecimal overdueInterest;

    @ApiModelProperty(value = "本次违约金")
    private BigDecimal penalty;

    @ApiModelProperty(value = "总计提前退保金额(元)")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "应退费用")
    private BigDecimal shouldRefundFee;

    @ApiModelProperty(value = "应补费用")
    private BigDecimal shouldLateSubmitFee;

    @ApiModelProperty(value = "债权id")
    private Integer debtId;

    @ApiModelProperty(value = "是否上传退保凭证 0:否 1:是")
    private String isUploadVoucher;

    @ApiModelProperty(value = "退保信息id")
    private Integer id;

    @ApiModelProperty(value = "资料url")
    private List<String> informationUrl;

    @ApiModelProperty(value = "其他费用")
    private BigDecimal otherFee;

    @ApiModelProperty(value = "退保保单总现金价值")
    private BigDecimal surrenderGuaranteeTotalAmount;

    @ApiModelProperty(value = "减免金额")
    private BigDecimal reliefAmount;

    @ApiModelProperty(value = "借款方式 0:等额本金 1:等额本息 2:等本等息 3:到期还本付息 4:先息后本")
    private String loanMethodRemark;
}
